package com.work.service.main;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.work.dto.main.BulkTallyAppSubmitDTO;
import com.work.dto.main.BulkTallyCorrectSubmitDTO;
import com.work.dto.main.BulkTallySearchDTO;
import com.work.dto.main.OneStockTallySearchDTO;
import com.work.entity.main.BulkTally;
import com.work.vo.main.*;
import org.springblade.core.mp.base.BaseService;

/**
 * 散货外捣接口
 *
 * @author ：dujianyu
 * @since ：Created in 2024/5/9 9:50
 */
public interface IBulkTallyService extends BaseService<BulkTally> {
    /**
     * app提交
     * @param dto 提交数据
     * @return boolean
     * @author dujianyu
     * @since 2024/5/9 10:12
     */
    boolean submitBulkTally(BulkTallyAppSubmitDTO dto);

    /**
     * 删除
     * @param id 主键ID
     * @return boolean
     * @author dujianyu
     * @since 2024/5/13 8:59
     */
    boolean removeBulkTally(Long id);

    /**
     * 散货外捣分页
     * @param page 分页
     * @param dto 搜索参数
     * @return IPage<BulkTallyVO>
     * @author dujianyu
     * @since 2024/5/13 9:18
     */
    IPage<BulkTallyVO> selectBulkTallyHistoryPage(IPage<BulkTallyVO> page, BulkTallySearchDTO dto);

    /**
     * 检算分页
     * @param page 分页
     * @param dto 搜索参数
     * @return IPage<BulkTallyCheckVO>
     * @author dujianyu
     * @since 2024/6/12 13:28
     */
    IPage<BulkTallyCheckVO> selectCheckPage(IPage<BulkTallyCheckVO> page, BulkTallySearchDTO dto);

    /**
     * 检算修正
     * @param dto 提交数据
     * @return boolean
     * @author dujianyu
     * @since 2024/6/12 15:04
     */
    boolean correctTon(BulkTallyCorrectSubmitDTO dto);

    /**
     * 检算确认
     * @param id 主键ID
     * @return  String
     * @author dujianyu
     * @since 2024/6/12 15:08
     */
    String changeIsCheck(String id);

    /**
     * 解锁分页
     * @param page 分页
     * @param dto 搜索条件
     * @return IPage<BulkTallyUnlockVO>
     * @author dujianyu
     * @since 2024/6/18 14:30
     */
    IPage<BulkTallyUnlockVO> selectUnlockPage(IPage<BulkTallyUnlockVO> page, BulkTallySearchDTO dto);

    /**
     * 编辑状态
     * @param id 主键ID
     * @return String
     * @author dujianyu
     * @since 2024/6/18 14:42
     */
    String changeIsEdit(String id);

    /**
     * 解锁详情
     * @param dto 搜索条件
     * @return BulkTallyUnlockDetailVO
     * @author dujianyu
     * @since 2024/6/18 15:36
     */
    BulkTallyUnlockDetailVO selectBulkDetail(BulkTallySearchDTO dto);

    /**
     * 工班查询与导出
     * @param page 分页
     * @param dto 搜索条件
     * @return IPage<BulkTallySearchExportVO>
     * @author dujianyu
     * @since 2024/7/3 10:10
     */
    IPage<BulkTallySearchExportVO> selectTallySearchExportPage(IPage<BulkTallySearchExportVO> page, BulkTallySearchDTO dto);

    /**
     * 工班查询与导出统计
     * @param dto 搜索条件
     * @return TotalPieceTonVO
     * @author dujianyu
     * @since 2024/7/4 10:41
     */
    TotalPieceTonVO selectTallySearchExportTotal(BulkTallySearchDTO dto);
}
